package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.IOException;
import java.util.Date;
import java.util.List;

/**
 * 商品管理对象 p_product
 * 
 * @author ruoyi
 * @date 2024-12-31
 */
@EqualsAndHashCode(callSuper = true)
@TableName(value = "p_product")
@Data
public class PProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @TableId
    private Long id;

    /** 库房ID */
    @Excel(name = "库房ID")
    private Long warehouseId;

    /** 库房名称 */
    @Excel(name = "库房名称")
    private String warehouseName;

    /** 柜体ID */
    @Excel(name = "柜体ID")
    private Long cabinetId;

    @Excel(name = "柜体编码")
    private String cabinetCode;

    /** 物品名称 */
    @Excel(name = "物品名称")
    private String productName;

    /** 物品名称序号 */
    @Excel(name = "物品名称序号")
    private Long code;

    /** rfid */
    @Excel(name = "rfid")
    private String rfid;

    /** 层数 */
    @Excel(name = "层数")
    private Long layer;

    /** 盒号 */
    @Excel(name = "盒号")
    private Long boxNo;

    /** 是否出库(0:不在位，1:在位) */
    @Excel(name = "是否出库(0:不在位，1:在位)")
    private String outboundFlag;



    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "启用时间)")
    private Date startTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "停用时间)")
    private Date endTime;

    /** 是否出库(0:不在位，1:在位) */
    @Excel(name = "钥匙位绑定的 ID 信息")
    private String keyId;

    /** 是否出库(0:不在位，1:在位) */
    @Excel(name = "绑定ID与存放ID不一致")
    private String errorFlag;

    private String useStatus;
    @TableField(exist = false)
    List<PProductProp> productPropList;

}
